In a Long Term Evolution (LTE) system, each sub-frame (1 ms) of a downlink is divided into an earlier portion and a later portion according to time, wherein the earlier portion includes several Physical Downlink Control Channels (PDCCHs), and the later portion includes several Physical Downlink Shared Channels (PDSCHs). Wherein, the PDCCH bears Downlink Control Information (DCI), with which an evolved Node B (eNodeB) can notify a User Equipment (UE) of relevant control information and format information of each PDSCH in the sub-frame, such as a physical resource mapping location, a modulation mode, an encoding format and the like. Here, the eNB may also be referred to as a base station of the LTE system. For the UE, in order to demodulate PDSCH data, the PDCCH must be demodulated and decoded timely and correctly.
In the eNodeB of the LTE system, the PDCCH is modulated by Quadrature Phase Shift Keying (QPSK), with a tail-biting convolutional code as a forward error correction code. FIG. 1 is a flowchart of sending the DCI by the eNodeB in an existing LTE system. As can be seen from FIG. 1, when sending the DCI. S101: the eNodeB adds Cyclic Redundancy Check (CRC) check digits of 16 bits to the DCI. S102: and then goes through tail-biting convolutional encoding with a code rate of ⅓, S103: and then interleaving, S104: and then rate-matching, S105: and then is modulated, S106: and is then mapped onto physical resources, so as to implement sending of the DCI. Wherein, the physical resources refer to several specific sub-carriers. The eNodeB may send in one sub-frame a plurality of different DCI born on different PDCCHs, which PDCCHs are mapped on different physical resources, i.e., different Orthogonal Frequency Division Multiplexing (OFDM) symbols or different sub-carriers.
For the UE of the LTE system, the UE cannot fully know physical resources occupied by each PDCCH. However, according to relevant provisions of a protocol, there are several possible physical resource combinations, i.e., several combinations of data sub-carriers with specific locations, and the UE needs to perform blind demodulating and decoding on each of the physical resource combinations. For each of the physical resource combinations, as shown in FIG. 2. S201: the UE extracts a data signal on a corresponding physical resource by de-mapping OFDM symbols or sub-carriers. S202: and then demodulates the data signal extracted and obtains Log-Likelihood Ratios (LLR) by soft-decision. In order to improve efficiency and flexibility, the UE in the LTE do not fully know in advance the length and format of the DCI born by a specific PDCCH sent by the eNodeB: however, the UE may know that there are several possible lengths according to the protocol and a context. Thus, for each length. S203: the UE needs to perform de-rate-matching on the received and demodulated LLRs. S204: and then de-interleaving. S205: and then decode the tail-biting convolutional code. S206: and then perform CRC checking on decoded results. If the results pass the CRC checking, then the UE deems that one DCI is correctly received, and extracts and Interprets various commands of the eNodeB according to a format. Otherwise. If the results fall to pass the CRC checking, then the UE discards the decoded results directly, and continues to demodulate, decode and check other assumptions. Here, the other assumptions refer to different DCI lengths and formats and different physical resource combinations.
It can be seen from the above description that the UE needs to complete multiple times of demodulation and decoding within one sub-frame. According to analysis of the protocol and various scenarios, the UE needs to perform up to 44 times of demodulation, decoding and checking, wherein during a PDCCH blind detection, decoding and checking the tail-biting convolutional code takes up most of processing time.
Assuming that original DCI are a0, a1, . . . , and aA−1, after the CRC checking, check digits of X bits are added as follows: c0, c1, . . . , and cC−1, C=A+X, wherein X=16.
FIG. 3 is the block diagram of the structure of a tail-biting convolutional encoder in the prior art. As shown in FIG. 3, registers from left to right in FIG. 3 are s0, s1, . . . , and s5, respectively, with initial values si=c(C−1−i), and the outputs of the three routes encoder are dk0, dk1, and dk2.
FIG. 4 is a processing flowchart of decoding and checking the tail-biting convolutional code in the prior art. As show in FIG. 4, S401: after de-interleaving, the input of three routes of LLRs is rm(i), wherein m=0, 1, 2 and i=0, 1, . . . , C−1. A traditional viterbi decoding algorithm is adopted for the tail-biting convolutional code, wherein the viterbi decoding algorithm is mainly divided into two main parts. i.e., forward searching and optimal path backtracking. S402: A process of decoding the tail-biting convolutional code is described below, which mainly includes the following steps:
Step 1: Initializing is performed;
specifically, there are six registers in the tail-biting convolutional code adopted by the LTE system, and 64 states need to be considered for a path in each decoding.
M(i)=0, wherein i=0, 1, . . . , 63.
A generator formula of the convolutional code is rewritten into a form that is convenient to be executed by a decoder.
            Let      ⁢                          ⁢                        G          _                          i          ,          j                      =                  (                              ∑                          k              =              0                        4                    ⁢                                          ⁢                                    S                              i                ,                k                                      ⁢                          G                              j                ,                                  k                  +                  1                                                                    )            ⁢      mod      ⁢                          ⁢      2        ,wherein i=0, 1, . . . , 31 and j=0, 1, 2,wherein Gj,k represents a generator polynomial sequence of the convolutional code, for the convolutional code adopted by the LTE system,
G0,k={1,0,1,1,0,1,1}, k=0, 1, . . . , 6;
G1,k={1,1,1,1,0,0,1}, k=0, 1, . . . , 6;
G2,k={1,1,1,0,1,0,1}, k=0, 1, . . . , 6.
Si,k represents the value of the kth digit of a state variable i expressed as a binary value.
And let gi,j=1-2 Gi,j, the value of Gi,j is {0, 1}, and the value of the corresponding gi,j is {1, −1}.
Step 2: Forward searching is performed;
specifically, it is assumed that searching is performed N steps forward. For the tail-biting convolutional code, N=3C.
Cycle 1: a counter n counts from 0 to N−1; and in each step, one by one for each state, a metric value is calculated, and an Add-Compare-Select operation is performed, for the specific process of which, Cycle 2 is referred to;                Cycle 2: for each count value j of a counter j (j=0, 1, . . . , 31),E=gj,0r0(n mod C)+gj,1r1(n mod C)+gj,2r2(n mod C)is calculatedif M(j)+E>M(j+32)−E,  (1)tempM(2j)=M(j)+E and Pn,2 j=0,        otherwisetempM(2j)=M(j+32)−E and Pn,2 j=1;if M(j)−E>M(j+32)+E,  (2)tempM(2j+1)=M(j)−E and Pn,2 j+1=0,        otherwisetempM(2j+1)=M(j+32)+E and Pn,2 j+1=1;        Cycle 2 for the counter j is ended.        
After calculation for each state is completed, let M(j)=tempM(j), wherein j=0, 1, . . . , 63, and Cycle 1 for the counter n is ended.
Step 3: Optimal path backtracking is performed;
specifically, the largest metric value among M(j) is found and set as j*; optimal path backtracking will be started from a state j*, for the tail-biting convolutional code, the length of the backtracking is generally taken as twice an information length, i.e., 2C. Let k(N−1)=j*;
Cycle 3: a counter i counts from N−1 to N−2C, and in each step:
if Pi,k(i)=0, then
                    k        ⁡                  (                      i            -            1                    )                    =              ⌊                              k            ⁡                          (              i              )                                2                ⌋              ,                  ⁢    otherwise              k      ⁡              (                  i          -          1                )              =                  ⌊                              k            ⁡                          (              i              )                                2                ⌋            +      32      
Cycle 3 for the counter i is ended.
S403: CRC checking is performed.
The decoded results are sorted according to a normal ordering, and are sent into a CRC module to calculate a check value.
The output decoded results are:y(i)=k(N−2C+i)mod 2, wherein i=0, 1, . . . , C−1
Through calculation, it is determined whether a CRC checking value is correct. If the CRC checking value is correct, then the DCI is reported, otherwise the present decoded results are discarded.
It can be seen from the above process of decoding and checking the tail-biting convolutional code in the prior art that the whole algorithm is completely a serial processing flow, and the backtracking operation can be started only after all forward searching are completed and an optimal path is acquired. Likewise, the CRC checking can be started only after the whole backtracking is completed, because CRC check calculation must start from the first information bit of a sequence while the backtracking operation cannot give the first bit until at the very end. Therefore, the CRC checking and the backtracking operation must be performed in serial. For a traditional method for decoding and checking the tail-biting convolutional code, the step of forward searching needs 3C processing time units, the backtracking needs 2C processing time units, and the CRC checking needs 1C processing time units; therefore, 6C processing time units are needed altogether.
In the above-mentioned LTE system, the UE needs to complete multiple times of decoding and checking of the tail-biting convolutional code. Within one sub-frame, the UE needs to acquire the DCI in the PDCCH as soon as possible, so as to perform demodulating and decoding of a subsequent PDSCH. In order to allow the subsequent PDSCH to obtain adequate time for demodulating and decoding, the system design of the UE puts a higher requirement on a time delay in demodulating and decoding the PDCCH. An improper design may greatly increase the expense of a parallel hardware for subsequent processing of the PDSCH, or lead to a data link failure due to a failure to process all PDSCH data timely.